package com.zjh.Guide.controller;

import com.jfinal.core.Controller;
import com.yaowk.authc.model.User;
import com.yaowk.common.kit.Constant;
import com.yaowk.common.kit.I18nKit;
import com.yaowk.common.kit.ResultKit;
import com.zjh.Guide.model.Column;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;

import java.util.Date;

/**
 * Created by zZz on 2017/5/7 0007.
 */
public class ColumnController extends Controller {

    /**
     * 根据模块id获取子栏目列表
     *
     * @param Module_id|模块id|Integer|必填
     * @title 根据模块id获取子栏目列表
     */

    @RequiresPermissions("Guide:read")
    public void getColumnByModuleId()
    {
        renderJson(ResultKit.success(Column.dao.getColumnByModuleId(getParaToInt("Module_id"))));
    }

    /**
     * 根据模块id编辑子栏目
     *
     * @param id|id|Integer|必填
     * @param name|子栏目|String|必填
     * @title 根据模块id编辑子栏目
     */
    @RequiresPermissions("Guide:update")
    public void edutColumn()
    {
        Column c = Column.dao.findById(getParaToInt("id"));
        if(c.getEditStatus() == 1)
        {
            c.setName(getPara("name"))
                    .update();
            renderJson(ResultKit.success(I18nKit.get("edit_success", Constant.NOTIFICATION_MODULE, this)));
        }
        else
        {
            renderJson(ResultKit.fail(I18nKit.get("CanNotEdit", Constant.NOTIFICATION_MODULE, this)));
        }
    }

    /**
     * 新增子栏目
     *
     * @param moduleId|模块id|Integer|必填
     * @param name|子栏目名称|String|必填
     * @title 新增子栏目
     */
    @RequiresPermissions("Guide:update")
    public void addColumn()
    {
        User user = (User) SecurityUtils.getSubject().getPrincipal();
        boolean result = new Column()
                .setName(getPara("name"))
                .setEditStatus(1)
                .setModuleId(getParaToInt("moduleId"))
                .setAddFrom("TectPolicy")
                .setCreateUser(user.getInt("id"))
                .setCreateTime(new Date())
                .save();
        if(result)
        {
            renderJson(ResultKit.success(I18nKit.get("add_success", Constant.NOTIFICATION_MODULE, this)));
        }
        else
        {
            renderJson(ResultKit.fail(I18nKit.get("add_fail", Constant.NOTIFICATION_MODULE, this)));
        }
    }

    /**
     * 根据模块id删除子栏目
     *
     * @param id|id|Integer|必填
     * @title 根据模块id删除子栏目
     */
    @RequiresPermissions("Guide:update")
    public void removeColumn()
    {
        Column column = Column.dao.findById(getParaToInt("id"));
        boolean result = column.setStatus(0).update();
        if(result)
        {
            renderJson(ResultKit.success(I18nKit.get("remove_success", Constant.NOTIFICATION_MODULE, this)));
        }
        else
        {
            renderJson(ResultKit.fail(I18nKit.get("remove_fail", Constant.NOTIFICATION_MODULE, this)));
        }
    }

}
